*use "C:\Users\Martín\Downloads\GCS_merged_vFINAL_04072019_Stata13 (2).dta" 
ssc install splitvallabels
ssc install catplot

drop if Dummy_valid_case!=1

tab Country
tab Country, nola
drop if Country==16
drop if Country==17
drop if Country==18
tab Country

recode Climate_protest_no (1=0) (2=1)(3=1)
label define Climate_protest_no 0 "March 2019" 1 "September 2019", modify
label val Climate_protest_no Climate_protest_no
label variable Climate_protest_no "Climate protest No."

label define Country 3 "Switzerland", modify

gen Country_alp= Country
replace Country_alp=2 if Country==1
replace Country_alp=1 if Country==2
replace Country_alp=13 if Country==3
replace Country_alp=6 if Country==4
replace Country_alp=8 if Country==5
replace Country_alp=14 if Country==6
replace Country_alp=10 if Country==7
replace Country_alp=12 if Country==8
replace Country_alp=15 if Country==9
replace Country_alp=4 if Country==10
replace Country_alp=5 if Country==11
replace Country_alp=9 if Country==12
replace Country_alp=7 if Country==13
replace Country_alp=11 if Country==14
replace Country_alp=3 if Country==15
tab Country_alp
label variable Country_alp "Country"
label define Country_alp 1 "Austria" 2 "Belgium" 3 "Czech Republic" 4 "Denmark" 5 "Finland" 6 "Germany" 7 "Hungary" 8 "Italy" 9 "Norway" 10 "Poland" 11"Romania" 12"Sweden" 13"Switzerland" 14"The Netherlands" 15"United Kingdom", replace
lab val Country_alp Country_alp
tab Country_alp


*subj class
tab Q73, nola
recode Q73 (5=4) (6/7=5) (8/13=.)
gen Q73_4cat=Q73
recode Q73_4cat (5=.)
gen Q73_re=5-Q73_4cat
label define Q73 1 "Upper class" 2 "Upper middle class" 3 "Lower middle class" 4 "Working/Lower class" 5 "None/DK", replace
lab val Q73 Q73
label define Q73_re 1 "Working/Lower class" 2 "Lower middle class" 3 "Upper middle class" 4 "Upper class", replace
lab val Q73_re Q73_re
label define Q73_4cat 1 "Upper class" 2 "Upper middle class" 3 "Lower middle class" 4 "Working/Lower class", replace
lab val Q73_4cat Q73_4cat
label variable Q73 "Subjective class"
label variable Q73_re "Subjective class"
label variable Q73_4cat "Subjective class"
tab Q73
tab Q73_re
tab Q73_4cat

*edu
tab ISCED
recode ISCED (0/1=1) 
recode ISCED (2/4=2) 
recode ISCED (5/8=3) 
recode ISCED (23=2) (67=3) (88=.) (567=3)
label variable ISCED "Education"
label define ISCED 1 "Primary" 2 "Secondary" 3 "Tertiary", replace
lab val ISCED ISCED
tab ISCED

*unempl
gen employment=.
replace employment=1 if Q66_1==1
replace employment=3 if Q66_3==1
replace employment=3 if Q66_4==1
replace employment=2 if Q66_2==1
replace employment=4 if Q66_5==1
replace employment=5 if Q66_6==1
replace employment=6 if Q66_7==1
replace employment=6 if Q66_8==1
replace employment=6 if Q66_9==1
label variable employment "Employment"
label define employment 1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other", replace
lab val employment employment
tab employment
gen employment_rev= employment
recode employment_rev (4/5=2)
label define employment_rev 1 "Full-time job" 2 "No full-time job" 3 "Student", replace
lab val employment_rev employment_rev
tab employment_rev
label variable employment_rev "Job status"

**Univ edu parents
tab Q70_1, nola
recode Q70_1 (2=0) (5=.)
tab Q70_2, nola
recode Q70_2 (2=0) (5=.)
label variable Q70_1 "Education parent 1"
label define Q70_1 0 "No" 1 "Yes", replace
lab val Q70_1 Q70_1
label variable Q70_2 "Education parent 2"
label define Q70_2 0 "No" 1 "Yes", replace
lab val Q70_2 Q70_2

gen edu_parents= Q70_1 + Q70_2
label variable edu_parents "University education of parents"
label define edu_parents 0 "No" 1 "One parent univ." 2 "Two parents univ.", replace
lab val edu_parents edu_parents
tab edu_parents

tab Q71, nola
recode Q71 (2=0)
label variable Q71 "Supervise work others"
label define Q71 0 "No" 1 "Yes", replace
lab val Q71 Q71
tab Q71

gen unempl=.
replace unempl=1 if Q66_6==1
replace unempl=0 if Q66_1==1
replace unempl=0 if Q66_3==1
replace unempl=0 if Q66_4==1
replace unempl=0 if Q67_1_1==1
replace unempl=0 if Q67_3_1==1
replace unempl=0 if Q67_4_1==1
replace unempl=0 if Q67_1_2==1
replace unempl=0 if Q67_3_2==1
replace unempl=0 if Q67_4_2==1
replace unempl=1 if Q67_6_1==1
replace unempl=1 if Q67_6_2==1
tab unempl

label variable unempl "Unemployment"
label define unempl 0 "No unemployed"1 "Unemployed", replace
lab val unempl unempl
tab unempl


* gen Age vars
gen Age_5_intervals=.
replace Age_5_intervals=1 if Age<15
replace Age_5_intervals=2 if Age>14& Age<20
replace Age_5_intervals=3 if Age>19& Age<36
replace Age_5_intervals=4 if Age>35& Age<66
replace Age_5_intervals=5 if Age>65
label define Age_5_intervals 1 "Under 15 " 2 "15-19" 3 "20-35 " 4 "36-65 " 5 "Older than 65 ", replace
label list Age_5_intervals
gen Age_dummy=.
replace Age_dummy=0 if Age<26
replace Age_dummy=1 if Age>25 
label define Age_dummy 0 "Young" 1 "Adult ", replace
lab val Age_dummy Age_dummy
label list Age_dummy

corr Age_5_intervals ISCED Q73

* FIG. 1 for age
catplot Q73, percent var1opts(label(labsize(small))) title("Participants in 2019 FFF events by subjective class (%)" , span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(rows(1) pos(bottom) col(5) size(vsmall)) scheme(lean1)
* FIG. 1.2 for sex by age
label define Q60 1 "Male" 2 "Female" 3 "Other identity", replace
catplot Q73 Q60, percent(Q60) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by sex", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)
label define Age_dummy 0 "Youth" 1 "Adult ", replace
lab val Age_dummy Age_dummy
catplot Q73 Age_dummy, percent(Age_dummy) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by age", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)

tab Q73 Q60, col row all
recode Q60 (3=.)

tab Q73 Age_dummy, col row all

*by country
catplot Q73 Country_alp, percent(Country_alp) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by country", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)
catplot employment Country_alp, percent(Country_alp) var1opts(label(labsize(small))) title("Job status among participants in 2019 FFF events by country", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6) size (vsmall)) scheme(lean1)
catplot Q71 Country_alp, percent(Country_alp) var1opts(label(labsize(small))) title("Supervised work of others among participants in 2019 FFF events by country", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80)) bar(2, color(navy) fintensity(inten60)) legend(pos(bottom) col(3) size (vsmall)) scheme(lean1)
catplot edu_parents Country_alp, percent(Country_alp) var1opts(label(labsize(small))) title("University education of parents among participants in 2019 FFF events by country", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80)) bar(2, color(gray) fintensity(inten40)) bar(3, color(navy) fintensity(inten60)) legend(pos(bottom) col(2) size (vsmall)) scheme(lean1)

* Creating STUDENT dummy (1=ithe respondent is a student (Q3) AND she/he's younger than 25)
gen student= Q3
replace student=2 if Age>24
tab student
tab student, nola
label define student 1 "Student" 2 "Adult", modify 
label val student student
catplot Q73 student, percent(student) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by students (pupil & under 25 y-o)/ adults (25 y-o or older)", span size(small)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)

* political behaviour
recode Q46_1 (1=1) (2=0),into(Q46_1_1)
recode Q46_2 (1=1) (2=0),into(Q46_1_2)
recode Q46_3 (1=1) (2=0),into(Q46_1_3)
recode Q46_4 (1=1) (2=0),into(Q46_1_4)
recode Q46_5 (1=1) (2=0),into(Q46_1_5)
recode Q46_6 (1=1) (2=0),into(Q46_1_6)
recode Q46_7 (1=1) (2=0),into(Q46_1_7)
recode Q46_8 (1=1) (2=0),into(Q46_1_8)
recode Q46_9 (1=1) (2=0),into(Q46_1_9)
recode Q46_10 (1=1) (2=0),into(Q46_1_10)
recode Q46_11 (1=1) (2=0),into(Q46_1_11)
recode Q46_12 (1=1) (2=0),into(Q46_1_12)
recode Q46_13 (1=1) (2=0),into(Q46_1_13)
recode Q46_14 (1=1) (2=0),into(Q46_1_14)
recode Q46_15 (1=1) (2=0),into(Q46_1_15)
recode Q46_16 (1=1) (2=0),into(Q46_1_16)
label variable Q46_1_1 "Contacting"
label variable Q46_1_2 "Petition"
label variable Q46_1_3 "Donated money"
label variable Q46_1_4 "Boycotted"
label variable Q46_1_5 "Worn sticker"
label variable Q46_1_6 "Social media"
label variable Q46_1_7 "Joined a strike"
label variable Q46_1_8 "Joined blockade, occupation"
label variable Q46_1_9 "Violent forms"
label variable Q46_1_10 "Gave up trip by plane"
label variable Q46_1_11 "Buycotted"
label variable Q46_1_12 "New diet"
label variable Q46_1_13 "Consumed less"
label variable Q46_1_14 "Reused products"
label variable Q46_1_15 "Reduced energy consumption"
label variable Q46_1_16 "Bought second-hand" 

graph bar Q46_1_2 Q46_1_4 Q46_1_6 Q46_1_7 Q46_1_8 Q46_1_9,  over(Q73,label(labsize(small)) relabel(`r(relabel)'))  yla(0 0.2 "20" 0.4 "40" 0.6 "60" 0.8 "80" 1 "100") legend(order(1 "Signed petition" 2 "Boycotted" 3 "Social media" 4 "Joined a strike" 5 "Joined blockade/occupation" 6 "Violent forms") size(vsmall)) title ("Subj. class among participants in 2019 FFF events by non-electoral political behaviour", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green)fintensity(inten80)) legend(pos(bottom) col(5)) scheme(lean1)

sum Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_4 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q46_1_9 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16 Q47_2
corr Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_4 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q46_1_9 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16 Q47_2
tetrachoric Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_4 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q46_1_9 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16
alpha Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_4 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q46_1_9 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16 Q47_2
pca Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_4 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q46_1_9 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16 Q47_2


tetrachoric Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8  
alpha Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q47_2
pca Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q47_2 
factor Q46_1_1 Q46_1_2 Q46_1_3 Q46_1_5 Q46_1_6 Q46_1_7 Q46_1_8 Q47_2
rotate

gen FA_Q46_1= Q46_1_1*0.3918  
gen FA_Q46_2= Q46_1_2*0.4088  
gen FA_Q46_3= Q46_1_3*0.3788  
gen FA_Q46_5= Q46_1_5*0.4824  
gen FA_Q46_6= Q46_1_6*0.3818  
gen FA_Q46_7= Q46_1_7*0.4224  
gen FA_Q46_8= Q46_1_8*0.3993  
gen FA_Q47_2= Q47_2*0.6133 
gen FAscale_POL=  (FA_Q46_1+ FA_Q46_2 + FA_Q46_3 + FA_Q46_5 + FA_Q46_6 + FA_Q46_7 + FA_Q46_8 + FA_Q47_2)*10/8
sum FAscale_POL
 
tetrachoric Q46_1_4 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16
alpha Q46_1_4 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16
pca Q46_1_4 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16
factor Q46_1_4 Q46_1_10 Q46_1_11 Q46_1_12 Q46_1_13 Q46_1_14 Q46_1_15 Q46_1_16
rotate

gen FA_Q46_4= Q46_1_4*0.5014  
gen FA_Q46_10= Q46_1_10*0.4277   
gen FA_Q46_11= Q46_1_11*0.5184   
gen FA_Q46_12= Q46_1_12*0.5215  
gen FA_Q46_13= Q46_1_13*0.5826  
gen FA_Q46_14= Q46_1_14*0.3698  
gen FA_Q46_15= Q46_1_15*0.2950  
gen FA_Q46_16= Q46_1_16*0.4150  
gen FAscale_LIFESTYLE=  (FA_Q46_4+ FA_Q46_10 + FA_Q46_11 + FA_Q46_12 + FA_Q46_13 + FA_Q46_14 + FA_Q46_15 + FA_Q46_16)*10/8

corr FAscale_POL FAscale_LIFESTYLE

* Prior prostesting
catplot Q73 Q47_1, percent(Q47_1) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by prior protest participation ever", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size(vsmall)) scheme(lean1)
catplot Q73 Q47_2, percent(Q47_2) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by prior protest participation last year", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size(vsmall)) scheme(lean1)

*Organizational membership of protesters
replace Q45_6=0 if Q45_6==3
label define Q45_6 1 "Passive member" 2 "Active member" 0 "Not a member", replace
replace Q45_5=0 if Q45_5==3
label define Q45_5 1 "Passive member" 2 "Active member" 0 "Not a member", replace
replace Q45_9=0 if Q45_9==3
label define Q45_9 1 "Passive member" 2 "Active member" 0 "Not a member", replace

catplot Q73 Q45_5, percent(Q45_5) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by trade union membership", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)
catplot Q73 Q45_6, percent(Q45_6) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by party membership", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)
catplot Q73 Q45_9, percent(Q45_9) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by env. org. membership", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)

gen Q45_9_new=Q45_9
recode Q45_9_new (2=1)
label define Q45_9_new 0 "Not a member" 1 "Member", replace
label val Q45_9_new Q45_9_new
tab Q45_9_new
label variable Q45_9_new "Membership env. org."

*Priority over economy
recode Q5_6 (1=5) (2=4) (3=3) (4=2) (5=1),into(Q5_6r)
label define Q5_6r 1 "Strongly agree" 2 "Agree" 3 "Neither disagree nor agree" 4 "Disagree" 5 "Strongly disagree", replace
label values Q5_6r Q5_6r
catplot Q73 Q5_6r, percent(Q5_6r) var1opts(label(labsize(vsmall))) title("Subj. class among participants in 2019 FFF events by priority over economy", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (small)) scheme(lean1)

***DDP trust&political values
tab Q55_1
tab Q55_2
tab Q55_3
tab Q55_4
tab Q55_5
tab Q55_6
tab Q55_7
tab Q55_8
graph bar Q55_1 Q55_2 Q55_4 Q55_5 Q55_6 Q55_8, over(Q73,label(labsize(vsmall)) relabel(`r(relabel)'))  yla(1 "Not at all trust" 2 "Not very trust" 3 "Somewhat trust" 4 "Quite trust" 5 "Very much trust") legend(order(1 "Nat. govmt." 2 "Parliam." 3 "EU" 4 "UN" 5 "Police" 6 "Env. groups") size(vsmall)) title ("Political trust by subj. class among 2019 FFF protesters", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten80)) bar(6, color(blue) fintensity(inten40)) legend(pos(bottom) col(8)) scheme(lean1)

tab Q56_1
tab Q56_2
tab Q56_3
tab Q56_4
tab Q56_5
tab Q56_6
graph bar Q56_1 Q56_2 Q56_3 Q56_4 Q56_5 Q56_6, over(Q73,label(labsize(vsmall)) relabel(`r(relabel)')) yla(1 "Strongly disagree" 2 "Disagree" 3 "Neither" 4 "Agree" 5 "Strongly agree") legend(order(1 "1" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6") size(vsmall))  title ("Subj. class among participants in 2019 FFF events by political efficacy", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)

sum Q50_1 Q50_2 Q50_3 Q50_4
graph bar Q50_1 Q50_2 Q50_3 Q50_4, over(Q73,label(labsize(vsmall)) relabel(`r(relabel)')) yla(1 "Strongly disagree" 2 "Disagree" 3 "Neither" 4 "Agree" 5 "Strongly agree") legend(order(1 "1" 2 "2" 3 "3" 4 "4") size(vsmall))  title ("Subj. class among participants in 2019 FFF events by left-right attitudes", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) legend(pos(bottom) col(6)) scheme(lean1)


tab Q57
recode Q57 (12=.) (13=.)
gen Q57_re= Q57-1
label variable Q57_re "Left-right ideology self-placement"
graph bar Q57_re, over(Q73,label(labsize(vsmall)) relabel(`r(relabel)')) yla(0 "Left" 1 2 "2"  3 4 "4" 5 6 "6" 7 8 "8" 9 10 "Right") legend(order(1 "1" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6") size(small)) ytitle("Left-right ideology self-placement", size(medium)) title ("Left-right ideology by subj. class among 2019 FFF protesters", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)

tab Q49
recode Q49 (12=.)
gen Q49_re= Q49-1
label variable Q49_re "Satisfaction with democracy"
graph bar Q49_re, over(Q73,label(labsize(vsmall)) relabel(`r(relabel)')) yla(0 "Very dissatisfied" 1 2 "2"  3 4 "4" 5 6 "6" 7 8 "8" 9 10 "Very satisfied") legend(order(1 "1" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6") size(small)) ytitle("Satisfaction with democracy", size(medium)) title ("Subj. class among participants in 2019 FFF events by satisfaction with democracy", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)

tab Q51
tab Q51, nola
recode Q51 (5=.)
catplot Q73 Q51, percent(Q51) var1opts(label(labsize(small))) title("Subj. class among participants in 2019 FFF events by political interest", span size(medium)) ytitle("Percent of Respondents", size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(green) fintensity(inten80)) legend(pos(bottom) col(5) size (vsmall)) scheme(lean1)
graph bar Q51, over(Q73,label(labsize(vsmall)) relabel(`r(relabel)')) yla(1 "Not at all" 2 "Not very" 3 "Quite" 4 "Very") legend(order(1 "1" 2 "2" 3 "3" 4 "4") size(small)) ytitle("Political interest", size(medium)) title ("Subj. class among participants in 2019 FFF events by political interest", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)

graph bar Q5_1 Q5_2 Q5_3 Q5_4, over(Q73,label(labsize(vsmall)) relabel(`r(relabel)')) title ("Strategies to solve env. problems by subjective class among 2019 FFF protesters", size(mediumsmall)) yla(1 "Strongly disagree" 2 "Disagree" 3 "Neither disagree nor agree" 4 "Agree" 5 "Strongly agree") legend(order(1 "Science" 2 "Government" 3 "Companies" 4 "Lifestyle") size(small))  bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) legend(pos(bottom) col(4)) scheme(lean1)

*** EMPLOYMENT
label variable employment "Job status"
label define employment 1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other", replace
label val employment employment
catplot employment, percent var1opts(label(labsize(small))) title("Participants in 2019 FFF events by job status (%)" , span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot Q71, percent var1opts(label(labsize(small))) title("Participants in 2019 FFF events by supervising work (%)", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "No" 2 "Yes") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80)) bar(2, color(navy) fintensity(inten60)) legend(pos(bottom) col(2)) scheme(lean1)
catplot edu_parents, percent var1opts(label(labsize(small))) title("Participants in 2019 FFF events by parents' education (%)" , span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "No univ. edu." 2 "One parent w/ univ. edu" 3 "Two parents w/ univ. edu") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80)) bar(2, color(gray) fintensity(inten40)) bar(3, color(navy) fintensity(inten60)) legend(pos(bottom) col(3)) scheme(lean1)
catplot employment Q71, percent(Q71) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by supervising work", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Age_dummy, percent(Age_dummy) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by age", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Country, percent(Country) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by country", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80)) bar(2, color(gray) fintensity(inten40)) bar(3, color(navy) fintensity(inten60)) legend(rows(1) pos(bottom) col(3) size(vsmall)) scheme(lean1)
catplot employment student, percent(student) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by students (pupil & under 25 y-o)/ adults (25 y-o or older)", span size(small)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
graph bar Q46_1_2 Q46_1_4 Q46_1_6 Q46_1_7 Q46_1_8 Q46_1_9,  over(employment,label(labsize(small)) relabel(`r(relabel)'))  yla(0 0.2 "20" 0.4 "40" 0.6 "60" 0.8 "80" 1 "100") legend(order(1 "Signed petition" 2 "Boycotted" 3 "Social media" 4 "Joined a strike" 5 "Joined blockade/occupation" 6 "Violent forms") size(vsmall)) title ("Job status of participants in 2019 FFF events by non-electoral political behaviour", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Q47_1, percent(Q47_1) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by prior protest participation ever", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Q47_2, percent(Q47_2) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by prior protest participation last year", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Q45_5, percent(Q45_5) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by trade union membership", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Q45_6, percent(Q45_6) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by party membership", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Q45_9, percent(Q45_9) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by env. org. membership", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6))  scheme(lean1)
catplot employment Q5_6r, percent(Q5_6r) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by priority over economy", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
graph bar Q55_1 Q55_2 Q55_4 Q55_5 Q55_6 Q55_8, over(employment,label(labsize(vsmall)) relabel(`r(relabel)')) title ("Political trust by job status among 2019 FFF protesters", size(medium)) yla(1 "Not at all trust" 2 "Not very trust" 3 "Somewhat trust" 4 "Quite trust" 5 "Very much trust") legend(order(1 "Nat. govmt." 2 "Parliam." 3 "EU" 4 "UN" 5 "Police" 6 "Env. groups") size(vsmall))  bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(8)) scheme(lean1)
graph bar Q56_1 Q56_2 Q56_3 Q56_4 Q56_5 Q56_6, over(employment,label(labsize(vsmall)) relabel(`r(relabel)')) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) yla(1 "Strongly disagree" 2 "Disagree" 3 "Neither" 4 "Agree" 5 "Strongly agree") legend(order(1 "1" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6") size(vsmall))  title ("Job status of participants in 2019 FFF events by political efficacy", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
graph bar Q57_re, over(employment,label(labsize(vsmall)) relabel(`r(relabel)')) yla(0 "Left" 1 2 "2"  3 4 "4" 5 6 "6" 7 8 "8" 9 10 "Right") legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) ytitle("Left-right ideology self-placement", size(medium)) title ("Left-right ideology by job status of 2019 FFF protesters", size(medium)) bar(1, color(maroon) fintensity(inten80))  bar(2, color(gray) fintensity(inten40)) bar(3, color(navy) fintensity(inten60)) legend(pos(bottom) col(3)) scheme(lean1)
graph bar Q49_re, over(employment,label(labsize(vsmall)) relabel(`r(relabel)')) yla(0 "Very dissatisfied" 1 2 "2"  3 4 "4" 5 6 "6" 7 8 "8" 9 10 "Very satisfied") legend(order(1 "1" 2 "2" 3 "3" 4 "4" 5 "5" 6 "6") size(small)) ytitle("Satisfaction with democracy", size(medium)) title ("Job status of participants in 2019 FFF events by satisfaction with democracy", size(medium))  bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)
catplot employment Q51, percent(Q51) var1opts(label(labsize(small))) title("Job status of participants in 2019 FFF events by political interest", span size(medium)) ytitle("Percent of Respondents", size(small)) legend(order(1 "Full-time job" 2 "Part-time job" 3 "Freelance" 4 "Student" 5 "Unemployed" 6 "Other") size(small)) blabel(bar, pos(center) format(%2.0f)) asyvars stack bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) bar(5, color(blue) fintensity(inten40)) bar(6, color(green) fintensity(inten80)) legend(pos(bottom) col(6)) scheme(lean1)


graph bar Q5_1 Q5_2 Q5_3 Q5_4, over(employment,label(labsize(small)) relabel(`r(relabel)')) title ("Strategies to solve env. problems by job status among 2019 FFF protesters", size(mediumsmall)) yla(1 "Strongly disagree" 2 "Disagree" 3 "Neither disagree nor agree" 4 "Agree" 5 "Strongly agree") legend(order(1 "Science" 2 "Government" 3 "Companies" 4 "Lifestyle") size(small))  bar(1, color(maroon) fintensity(inten80))  bar(2, color(maroon) fintensity(inten60)) bar(3, color(gray) fintensity(inten40)) bar(4, color(navy) fintensity(inten60)) legend(pos(bottom) col(4)) scheme(lean1)
graph bar Q5_1 Q5_2 Q5_3 Q5_4, over(Q71,label(labsize(small)) relabel(`r(relabel)')) title ("Strategies to solve env. problems by supervising other workers among 2019 FFF protesters", size(mediumsmall)) yla(1 "Strongly disagree" 2 "Disagree" 3 "Neither disagree nor agree" 4 "Agree" 5 "Strongly agree") legend(order(1 "Science" 2 "Government" 3 "Companies" 4 "Lifestyle") size(small))  bar(1, color(maroon) fintensity(inten80))  bar(2, color(gray) fintensity(inten40)) bar(3, color(navy) fintensity(inten60)) bar(4, color(blue) fintensity(inten40)) legend(pos(bottom) col(4)) scheme(lean1)
graph bar Q5_1 Q5_2 Q5_3 Q5_4, over(edu_parents,label(labsize(small)) relabel(`r(relabel)')) title ("Strategies to solve env. problems by parents' university education among 2019 FFF protesters", size(mediumsmall)) yla(1 "Strongly disagree" 2 "Disagree" 3 "Neither disagree nor agree" 4 "Agree" 5 "Strongly agree") legend(order(1 "Science" 2 "Government" 3 "Companies" 4 "Lifestyle") size(small))  bar(1, color(maroon) fintensity(inten80))  bar(2, color(gray) fintensity(inten40)) bar(3, color(navy) fintensity(inten60)) bar(4, color(blue) fintensity(inten40)) legend(pos(bottom) col(4)) scheme(lean1)


tab employment Q60, row col all
tab employment Age_dummy, row col all

tab employment Q46_1_2, row col all
tab employment Q46_1_4, row col all
tab employment Q46_1_6, row col all
tab employment Q46_1_7, row col all
tab employment Q46_1_8, row col all
tab employment Q46_1_9, row col all

tab Q73_4cat Q46_1_2, row col all
tab Q73_4cat Q46_1_4, row col all
tab Q73_4cat Q46_1_6, row col all
tab Q73_4cat Q46_1_7, row col all
tab Q73_4cat Q46_1_8, row col all
tab Q73_4cat Q46_1_9, row col all

tab employment Q47_2, row col all
tab employment Q45_9, row col all
tab Q73_4cat Q47_2, row col all
tab Q73_4cat Q45_9, row col all


tab Q73_4cat Q57_re, row col all
tab employment Q57_re, row col all
tab Q73_4cat Q49_re, row col all
tab employment Q49_re, row col all
tab Q73_4cat Q51, row col all
tab employment Q51, row col all

**********************AFTER TALK
splitvallabels Country_alp
catplot Climate_protest_no Country_alp, ///
var1opts(label(labsize(small))) ///
var2opts(label(labsize(small)) relabel(`r(relabel)')) ///
ytitle("Number of Respondents", size(medium small)) ///
title("Respondents by country and FFF event" ///
, span size(medium)) ///
blabel(bar, size(vsmall)) ///
intensity(25) ///
asyvars ///
bar(1, color(maroon) fintensity(inten80)) ///
bar(2, color(navy) fintensity(inten80)) ///
legend(rows(1) stack size(small) ///
order(1 "March 2019" 2 "September 2019") ///
symplacement(center) ///
title(FFF event, size(medium small)))


label variable Age_5_intervals "Age groups"
label variable Q47_1 "Ever protested"
label variable Q60 "Gender (female)"
recode Q60 (1=0)(2=1)(3=.)
label define Q60 0 "Male" 1 "Female ", replace
tab Q60

lab var Q5_1 "Science"
lab var Q5_2 "Governments"
lab var Q5_3 "Companies"
lab var Q5_4 "Lifestyle actions"


reg Q5_1 Q73_4cat i.City, robust
est sto A
reg Q5_2 Q73_4cat i.City, robust
est sto B
reg Q5_3 Q73_4cat i.City, robust
est sto C
reg Q5_4 Q73_4cat i.City, robust
est sto D
coefplot (A, label(Science)) (B, label(Government)) (C, label(Companies)) (D, label(Lifestyle)), drop(?cons *City) xline(0) scheme(lean1) scale(0.8)
reg Q5_1 i.employment i.City, robust
est sto A
reg Q5_2 i.employment i.City, robust
est sto B
reg Q5_3 i.employment i.City, robust
est sto C
reg Q5_4 i.employment i.City, robust
est sto D
coefplot (A, label(Science)) (B, label(Government)) (C, label(Companies)) (D, label(Lifestyle)), drop(?cons *City) xline(0) scheme(lean1) scale(0.8)
reg Q5_1 Q71  i.City, robust
est sto A
reg Q5_2 Q71 i.City, robust
est sto B
reg Q5_3 Q71 i.City, robust
est sto C
reg Q5_4 Q71 i.City, robust
est sto D
coefplot (A, label(Science)) (B, label(Government)) (C, label(Companies)) (D, label(Lifestyle)), drop(?cons *City) xline(0) scheme(lean1) scale(0.8)
reg Q5_1 edu_parents i.City, robust
est sto A
reg Q5_2 edu_parents i.City, robust
est sto B
reg Q5_3 edu_parents i.City, robust
est sto C
reg Q5_4 edu_parents i.City, robust
est sto D
coefplot (A, label(Science)) (B, label(Government)) (C, label(Companies)) (D, label(Lifestyle)), drop(?cons *City) xline(0) scheme(lean1) scale(0.8)
reg Q5_1 i.employment Q71 edu_parents i.City, robust
est sto A
reg Q5_2 i.employment Q71 edu_parents i.City, robust
est sto B
reg Q5_3 i.employment Q71 edu_parents i.City, robust
est sto C
reg Q5_4 i.employment Q71 edu_parents i.City, robust
est sto D
coefplot (A, label(Science)) (B, label(Government)) (C, label(Companies)) (D, label(Lifestyle)), drop(?cons *City) xline(0) scheme(lean1) scale(0.8)


sum Q5_1 Q5_2 Q5_3 Q5_4 i.employment edu_parents Q73_4cat  i.Country Climate_protest_no Q45_9_new Age_5_intervals Q60


reg Q5_1 Q73_4cat i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto A
margins, over(Q73_4cat) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
reg Q5_2 Q73_4cat i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto B
margins, over(Q73_4cat) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
reg Q5_3 Q73_4cat i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto C
margins, over(Q73_4cat) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
reg Q5_4 Q73_4cat i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto D
margins, over(Q73_4cat) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
coefplot (A, label(Science)) (B, label(Government)) (C, label(Companies)) (D, label(Lifestyle)), drop(?cons *City) xline(0) scheme(lean1) scale(0.8)
reg Q5_1 i.employment Q71 edu_parents i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto A
margins, over(employment) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
reg Q5_2 i.employment Q71 edu_parents i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto B
margins, over(employment) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
reg Q5_3 i.employment Q71 edu_parents i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto C
margins, over(employment) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
reg Q5_4 i.employment Q71 edu_parents i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto D
margins, over(employment) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
coefplot (A, label(Science)) (B, label(Government)) (C, label(Companies)) (D, label(Lifestyle)), drop(?cons *City) xline(0) scheme(lean1) scale(0.8)

help combomarginsplot
reg Q5_1 Q73_4cat i.employment i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto A
margins, over(Q73_4cat) atmeans vsquish  saving(file1, replace)
marginsplot, recast(dropline) name(margins1, replace)
reg Q5_2 Q73_4cat i.employment i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto B
margins, over(Q73_4cat) atmeans vsquish  saving(file2, replace)
marginsplot, recast(dropline) name(margins2, replace)
reg Q5_3 Q73_4cat i.employment i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto C
margins, over(Q73_4cat) atmeans vsquish  saving(file3, replace)
marginsplot, recast(dropline) name(margins3, replace)
reg Q5_4 Q73_4cat i.employment i.City Age_5_intervals Q60 Climate_protest_no Q57_re, robust
est sto D
margins, over(Q73_4cat) atmeans vsquish  saving(file4, replace)
marginsplot, recast(dropline) name(margins4, replace)


corr Q5_1 Q5_2 Q5_3 Q5_4 Q73_4cat Q71 edu_parents Climate_protest_no Age_5_intervals Q60


hist Q5_1, percent by(Country)
hist Q5_2, percent by(Country)
hist Q5_3, percent by(Country)
hist Q5_4, percent by(Country)


ciplot Q5_1 Q5_2 Q5_3 Q5_4




